package com.wing.cabinet.model.request;

import com.wing.cabinet.model.entity.AuthorityManage;
import com.wing.cabinet.model.entity.AuthorityMateriel;
import com.wing.mybatis.common.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.List;

/**
 * 权限管理表Form
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class AuthorityManageForm extends BaseEntity {

    /**
     * ID
     */
    private Long id;

    /**
     * 创建者
     */
    private Long creator;

    /**
     * 修改者
     */
    private Long modifier;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 修改人
     */
    private String modifierName;

    /**
     * 权限组名称
     */
    private String name;

    /**
     * 授信方式
     */
    private AuthorityManage.CreditWay creditWay;

    /**
     * 授信额度
     */
    private BigDecimal lineOfCredit;

    /**
     * 额度评估周期
     */
    private AuthorityManage.LineEvaluatePeriod lineEvaluatePeriod;

    /**
     * 是否限制物料
     */
    private AuthorityManage.AstrictMaterial astrictMaterial;

    /**
     * 可领物资分类id
     */
    private String materialId;

    /**
     * 可领物资分类名
     */
    private String materialName;

    /**
     * 刀具柜Id
     */
    private String cabinetId;


    public interface Add{}

    public interface Update{}

    /**
     * 状态  0正常  1停用
     */
    private Long status;

    /**
     * 刀具柜编码
     */
    private String cabinetCode;

    /**
     * 授信类型
     */
    private AuthorityManage.CreditType creditType;

    /**
     * 授信数量
     */
    private Integer authorizedQuantity;
    /**
     * 限制方式
     */
    private AuthorityManage.RestrictWay restrictWay;
    /**
     * 数量未归还阈值
     */
    private Integer quantityThreshold;
    /**
     * 金额未归还阈值
     */
    private BigDecimal moneyThreshold;
    /**
     * 物料信息
     */
    private List<AuthorityMateriel> authorityMaterielList;

    /**
     * 实际授信额度
     */
    private BigDecimal practicalLineOfCredit;
    /**
     * 超额预警审核人
     */
    private Long excessAuditor;
    /**
     * 领用复审额度
     */
    private BigDecimal recheckAmount;
    /**
     * 复审额度审核人
     */
    private Long recheckAmountAuditor;
    /**
     * 超额预警是否开启 0开启 1关闭
     */
    private Integer excessStatus;

    /**
     * 整体授信数量
     */
    private Integer creditQuantity;

    /**
     * 整体授信金额
     */
    private BigDecimal creditAmount;

    /**
     * 实际授信数量
     */
    private Integer practicalCreditQuantity;

    /**
     * 单个物料默认限制状态: 0 限制  1不限制
     */
    private Integer authotizedStatus;



}
